package com.whfc.ms.api.safety.service;

import com.whfc.common.result.PageData;
import com.whfc.safety.dto.SafetyFineDTO;
import com.whfc.safety.dto.SafetyFineNumDTO;
import com.whfc.safety.param.SafetyFineAddParam;
import com.whfc.safety.param.SafetyFineCompleteParam;

import java.util.Date;
import java.util.List;

/**
 * @Description 安全罚款单
 * @Author hw
 * @Date 2021/8/13
 * @Version 1.0
 */
public interface MsSafetyFineService {

    /**
     * 质量罚款单请求列表
     *
     * @param deptId
     * @param corpName
     * @param userName
     * @param state
     * @param startTime
     * @param endTime
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageData<SafetyFineDTO> list(Integer deptId, String corpName, String userName, String state, Date startTime, Date endTime, Integer pageNum, Integer pageSize);

    /**
     * 质量罚款单请求统计
     *
     * @param deptId
     * @param corpName
     * @param userName
     * @param startTime
     * @param endTime
     * @return
     */
    SafetyFineNumDTO num(Integer deptId, String corpName, String userName, Date startTime, Date endTime);

    /**
     * 新增质量罚款单请求
     *
     * @param param
     */
    void add(SafetyFineAddParam param);

    /**
     * 删除质量罚款单请求
     *
     * @param fineId
     */
    void del(Integer fineId);

    /**
     * 批准罚款单
     *
     * @param param
     */
    void complete(SafetyFineCompleteParam param);

    /**
     * 导出罚款单
     *
     * @param fineIds
     * @param deptId
     */
    void export(String fineIds, Integer deptId);

    void deleteBatch(List<Integer> idList);
}
